'''
    the para info save the infomations of a base type(U8 ~ S64.. F32..) of 
    para object
    if the parameter is in an struct object, we will sign the offset of the 
    structure member.
        example.c
            static struct
            {
                 U8 a;
                 U8 b;
                 U16 c;
                 struct
                 {
                    U8 buf[10];
                 }d;
            }test;
            for one struct object we will save each member of the object:
                example_struct_0 =
                {"defined_struct":["a":"U8","b":"U8",c:"U16"],"is_public"
                name = "test.a" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=0}
                name = "test.b" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=1}
                name = "test.c" ,base_type = "U16", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=2}
                name = "test.d.buf[0]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=4}
                name = "test.d.buf[1]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=5}
                name = "test.d.buf[2]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=6}
                name = "test.d.buf[3]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=7}
                name = "test.d.buf[4]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=8}
                name = "test.d.buf[5]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=9}
                name = "test.d.buf[6]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=10}
                name = "test.d.buf[7]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=11}
                name = "test.d.buf[8]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=12}
                name = "test.d.buf[9]" ,base_type = "U8", is_public = False,
                defined_path = "example.c",  struct_dic="example_struct_0",
                member_offset=13}

'''


class para_info:
    name = ""
    base_type = ""
    type_name = ""
    is_public = False
    defined_path = ""
    struct_dic = None
    member_offset = 0
    is_ptr = False
    init_value = 0

    writed_pos = []
    readed_pos = []

    def __init__(self,
                 name="",
                 type_name="",
                 is_public=False,
                 defined_path="",
                 struct_dic=None,
                 member_offset=0,
                 init_value = 0,
                 is_ptr=False):
        self.name = name
        self.type_name = type_name
        self.is_public = is_public
        self.defined_path = defined_path
        self.struct_dic = struct_dic
        self.member_offset = 0
        self.is_ptr = is_ptr
        self.init_value = init_value
